package chapter12_memModel;

//此段代码代表着此操作发生的时间在之前，但是这个操作不一定会先行发生，因为以下没有适用于先行规则
public class P12_2 {
    private int x = 0;

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }


    public static void main(String[] args) {
        P12_2 p12_2 = new P12_2();
        Thread[] threads = new Thread[2];
        threads[0] = new Thread(() -> {
            //可能没有及时刷新回主存导致后面，时间发生之后的状态没有读取到正确的值
                p12_2.setX(20);
            });
        threads[1] = new Thread(() -> {
            System.out.println(p12_2.getX());
            });
        threads[0].start();
        threads[1].start();
    }
}
